<header>
    位运算符
</header>
<table>
    <thead>
        <tr>
            <th>运算符</th>
            <th>描述</th>
            <th>实例</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>&amp;</td>
            <td>按位与运算符：参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0</td>
            <td> (a &amp; b) 输出结果 12 ，二进制解释： 0000 1100</td>
        </tr>
        <tr>
            <td>|</td>
            <td> 按位或运算符：只要对应的二个二进位有一个为1时，结果位就为1。</td>
            <td> (a | b) 输出结果 61 ，二进制解释： 0011 1101</td>
        </tr>
        <tr>
            <td>^</td>
            <td>按位异或运算符：当两对应的二进位相异时，结果为1 </td>
            <td> (a ^ b) 输出结果 49 ，二进制解释： 0011 0001</td>
        </tr>
        <tr>
            <td>~</td>
            <td> 按位取反运算符：对数据的每个二进制位取反,即把1变为0,把0变为1。<span class="important">~x</span> 类似于 <span
                    class="important">-x-1</span>
            </td>
            <td> (~a ) 输出结果 -61 ，二进制解释： 1100 0011， 在一个有符号二进制数的补码形式。</td>
        </tr>
        <tr>
            <td>&lt;&lt;</td>
            <td>左移动运算符：运算数的各二进位全部左移若干位，由"&lt;&lt;"右边的数指定移动的位数，高位丢弃，低位补0。</td>
            <td> a &lt;&lt; 2 输出结果 240 ，二进制解释： 1111 0000</td>
        </tr>
        <tr>
            <td>&gt;&gt;</td>
            <td>右移动运算符：把"&gt;&gt;"左边的运算数的各二进位全部右移若干位，"&gt;&gt;"右边的数指定移动的位数 </td>
            <td> a &gt;&gt; 2 输出结果 15 ，二进制解释： 0000 1111</td>
        </tr>
    </tbody>
</table>